

/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}

// 只能输入英文，数字，下划线，横线
export function validCode(str) {
  return /^[5A-Za-z0-9-\_]+$/.test(str)
}

// 密码必须包含字母和数字,且在6~18位之间
export function validPswd(str) {
  return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$/.test(str)
}

// 不包含中文
export function validNoChinese(str) {
  return /[\u4E00-\u9FA5]/g.test(str)
}

// 手机号码(更新2020年2月)
export function validPhone(str) {
  let reg = /^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$/;
  return reg.test(str)
}

// 邮箱(更新2020年4月)
export function validEmail(str) {
  let reg = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
  return reg.test(str)
}

// 链接(更新2020年4月)
export function validUrl(str) {
  let reg = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/;
  return reg.test(str)
}